package com.mike.service;


import com.mike.common.ServerResponse;
import com.mike.pojo.User;


/**
 * Created by Administrator on 2017/11/29.
 */
public interface IUserService {

    public ServerResponse<User> login(String username, String password);

    public ServerResponse<String> register(User user);
    /**TODO 检查注册时的用户名或者邮箱是否可用
     * param str
     * param type
     * return
     *
     */
    public ServerResponse<String> checkValid(String str,String type);

    /**
     * 根据用户名获得更改密码的问题
     * @param username
     * @return
     */
    ServerResponse<String> getQuestionByUsername(String username);


    /**
     * 忘记密码，根据提示信息，验证答案
     * @username
     * @question
     * @answer
     */
    public ServerResponse<String> CheckAnswer(String username,String question,String answer);


    ServerResponse<String> checkAnswer(String username, String question, String answer);

    /**
     *正确回单预设问题之后，对密码进行重置
     * param username
     * param passwordNew
     * param forgetToken
     * @return
     */
    public ServerResponse<String> forgetResetPassword(String username,String passwordNew, String forgetToken);

    /**
     * 在已登录状态下，对密码进行修改
     * param session
     * param passwordOld
     * param passwordNew
     * return
     */
    public ServerResponse<String> resetPassword(String passwodOld,String passwordNew,User user);


    /**
     * 在已登录的情况下，修改用户信息
     * param user
     * return
     */
    public ServerResponse<User> updateInformation(User user);

    /**
     * 在已登录的情况下，查询用户详细信息
     * param id
     * return
     */
    ServerResponse<User> getInformation(Integer id);



    //======================
    /**
     * 审核是否具有管理员限权
     * param user
     * return
     */
    ServerResponse checkAdminRole(User user);

}
